package string;

import java.io.UnsupportedEncodingException;

/*
String和StringBuilder/StringBuffer的区别:
    String具有不可变性,而StringBuilder不具备
    当频繁操作字符串时,使用StringBuilder
    StringBuffer是线程安全的,但是性能略低,速度较慢,
    StringBuilder不是线程安全的,但是性能略高,速度较快
    一般字符串定义都是单线程,所以一般用StringBuilder
    特殊情况下用StringBuffer
 */
public class StringDemo3 {
    public static void main(String[] args) throws UnsupportedEncodingException {
        //字符串和byte数组之间的相互转换
        //定义一个字符串
        String str=new String("JAVA 编程 基础");
        //将字符串转换为byte数组并打印输出
        byte[] arrs=str.getBytes("UTF-8");//把字符串转换为UTF-8字节数组
        //遍历数组
        /*
        在UTF-8编码中,一个汉字由3个UTF-8编码组成
         */
        for (int i=0;i<arrs.length;i++){
            System.out.print(arrs[i]+" ");
        }
        System.out.println();
        //将byte数组转换成字符串
        System.out.println("======================");
        String str1=new String(arrs,"UTF-8");
        System.out.println(str1);
    }
}
